package com.dji.sample.manage.service;

import com.dji.sample.manage.model.dto.CapacityDeviceDTO;
import com.dji.sample.manage.model.dto.LiveTypeDTO;
import com.dji.sdk.cloudapi.device.VideoId;
import com.dji.sdk.common.HttpResultResponse;

import java.util.List;

/**
 * 直播流服务接口
 */
public interface ILiveStreamService {

    /**
     * 获取此工作空间中所有可以进行直播的无人机数据
     * @param workspaceId 工作空间ID
     * @return 直播能力设备列表
     */
    List<CapacityDeviceDTO> getLiveCapacity(String workspaceId);

    /**
     * 通过发布MQTT消息启动直播流
     * @param liveParam 直播所需参数
     * @return 直播启动结果
     */
    HttpResultResponse liveStart(LiveTypeDTO liveParam);

    /**
     * 通过发布MQTT消息停止直播流
     * @param videoId 视频ID
     * @return 直播停止结果
     */
    HttpResultResponse liveStop(VideoId videoId);

    /**
     * 通过发布MQTT消息重新调整直播流的清晰度
     * @param liveParam 直播参数
     * @return 直播质量设置结果
     */
    HttpResultResponse liveSetQuality(LiveTypeDTO liveParam);

    /**
     * 在直播过程中切换设备镜头
     * @param liveParam 直播参数
     * @return 镜头切换结果
     */
    HttpResultResponse liveLensChange(LiveTypeDTO liveParam);

    /**
     * 启动AI检测直播流
     * @param streamid 流ID
     * @return AI检测直播启动结果，包含处理后的直播URL
     */
    HttpResultResponse<String> liveStartAi(String streamid);
}